var mongoose = require('mongoose'),
	Schema = mongoose.Schema,
    properties = require('../conf/properties'),
    baseDao = require('./baseDao');

//Esquema JSON para las categorías de Wikimapia
var wikimapiaCategoriesSchema = new Schema(
	{
	    id : { type: Number, unique: true }, //Este campo debe ser único. No es igual al ID que le pone MongoDB
	    title : String,
	    title_es: String
	}
);

//Conecto con la DB y seteo el Model
mongoose.connect(properties.mongodbConnectionURI);
var wikimapiaCategories = mongoose.model('wikimapiaCategories', wikimapiaCategoriesSchema);

module.exports.getAll = function (short, sortField, sortOrd, callback) {
	baseDao.getAll(wikimapiaCategories, short, '["id", "title"]', sortField, sortOrd, callback);
}

module.exports.find = function (filters, callback) {
	baseDao.find(wikimapiaCategories, filters, false, callback);
}

module.exports.findOne = function (filters, callback) {
	baseDao.find(wikimapiaCategories, filters, true, callback);
}

module.exports.set = function (category, callback) {
	baseDao.set(wikimapiaCategories, category, callback);
}

module.exports.update = function (id, data, callback) {
	baseDao.update(wikimapiaCategories, 'id', id, data, callback);
}

module.exports.upsert = function (id, data, callback) {
	baseDao.upsert(wikimapiaCategories, 'id', id, data, callback);
}

module.exports.remove = function (id, callback) {
	baseDao.remove(wikimapiaCategories, 'id', id, callback);
}

module.exports.drop = function () {
	var category = new wikimapiaCategories();
	category.collection.drop();
}